package com.kartoshka.interfaces 
{
	import flash.geom.Rectangle;
	
	/**
	 * @author Alexander Zats, 2009
	 */
	public interface IMeasurable extends IUnique 
	{
		function setMargins( left : Number = NaN, top : Number = NaN, right : Number = NaN, bottom : Number = NaN ) : void;
		function getMargins() : Rectangle;

		function set marginLeft( value : Number ) : void;
		function get marginLeft() : Number;
		function set marginTop( value : Number ) : void;
		function get marginTop() : Number;
		function set marginRight( value : Number ) : void;
		function get marginRight() : Number;
		function set marginBottom( value : Number ) : void;
		function get marginBottom() : Number;
		
		function setPaddings( left : Number = NaN, top : Number = NaN, right : Number = NaN, bottom : Number = NaN ) : void;
		function getPaddings() : Rectangle;
		
		function set paddingLeft( value : Number ) : void;
		function get paddingLeft() : Number;
		function set paddingTop( value : Number ) : void;
		function get paddingTop() : Number;
		function set paddingRight( value : Number ) : void;
		function get paddingRight() : Number;
		function set paddingBottom( value : Number ) : void;
		function get paddingBottom() : Number;
		
		function setSize( width : Number = NaN, height : Number = NaN ) : void;
		
		function set width( value : Number ) : void;
		function get width( ) : Number;
		function set height( value : Number ) : void;
		function get height( ) : Number;
		
		function setPercentSize( width : Number = NaN, height : Number = NaN ) : void;
		
		function set percentWidth( value : Number ) : void;
		function get percentWidth( ) : Number;
		function set percentHeight( value : Number ) : void;
		function get percentHeight( ) : Number;
		
		function set layoutWidth( value : Number ) : void;
		function get layoutWidth()  : Number;
		function set layoutHeight( value : Number ) : void;
		function get layoutHeight()  : Number;
	}
}
